#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import os

import xlwt,xlrd
from xlutils.copy import copy

#获取总行数
def read_rows(file,sheet=0):
    wb = xlrd.open_workbook(filename=file)  # 打开文件
    sheet2 = wb.sheet_by_index(sheet) # 通过序号获取表格
    return sheet2.nrows

#读取excel超链接列
def read_excel(file,row,col,sheet=0):
    wb = xlrd.open_workbook(filename=file)#打开文件
    # print(wb.sheet_names())#获取所有表格名字
    sheet2 = wb.sheet_by_index(sheet)
    # sheet2 = wb.sheet_by_name(sheet)#通过名字获取表格

    # rows = sheet2.row_values(2)#获取行内容
    # cols = sheet2.col_values(3)#获取列内容

    keyword = sheet2.cell(row,col).value
    print(keyword)#获取表格里的内容，三种方式
    # print(sheet2.cell_value(1,1))
    # print(sheet2.row(1)[1].value)
    return keyword

def write_excel(file,row,col,text,sheet='sheet1'):
    """
    写excel，格式xls
    :param file: 文件名
    :param row: 行序号
    :param col: 列序号
    :param text: 内容
    :param sheet: sheet名
    :return:
    """
    isExists =os.path.exists(file)
    if isExists:    # 判断文件是否存在
        r_excel = xlrd.open_workbook(file,formatting_info=True) #读excel，formatting_info=True保留原格式
        sheets = r_excel.sheet_names()    # 获取所有sheet名
        w_excel= copy(r_excel) # 将xlrd的对象转化为xlwt的对象
        if sheet in sheets: # 判断sheet名是否存在
            worksheet = w_excel.get_sheet(sheet)  # 获取要操作的sheet，可以是0,1,2，也可以是sheet名
        else:
            worksheet = w_excel.add_sheet(sheet)
        # 设置前4列宽度
        worksheet.col(0).width = 256 * 20
        worksheet.col(1).width = 256 * 20
        worksheet.col(2).width = 256 * 100
        worksheet.col(3).width = 256 * 100
    else:   # 文件不存在，则创建文件，创建sheet
        w_excel = xlwt.Workbook(file)
        worksheet = w_excel.add_sheet(sheet)
    # 添加边框
    style = xlwt.XFStyle() #创建风格
    borders = xlwt.Borders()  # 创建边框
    borders.left = xlwt.Borders.DASHED
    # DASHED虚线
    # NO_LINE没有
    # THIN实线
    borders.right = xlwt.Borders.THIN
    borders.top = xlwt.Borders.THIN
    borders.bottom = xlwt.Borders.THIN
    borders.left_colour = 0x40
    borders.right_colour = 0x40
    borders.top_colour = 0x40
    borders.bottom_colour = 0x40
    style.alignment.wrap = 1  # 自动换行
    style.borders = borders  # 添加边框到风格
    worksheet.write(row,col,text,style) # 写入内容
    w_excel.save(file) #保存
#
if __name__ =='__main__':
    file = r'C:\write_excel.xls'
    write_excel(file,0,0,'test11111')